/**
 * 
 */
package A002_Obrazek;

import java.awt.image.BufferedImage;

/**
 * Zadanie: Obraz jest sprawdzany pod czy szrokosc i wysokosc obrazka jest nieparzysta
 * jesli nie to obcina az osiagnie nieparzysta W oraz H

 * @param newW szerokosc zkadrowanego obrazu
 * @param newH wysokosc zkadrowanego obrazu
 *
 */
public class _D_KonwertBuffnaNieparzyste {
	
	private int newW, newH; //np. nieparzyste
	
	public _D_KonwertBuffnaNieparzyste(_A_DaneObrazka DO){
		//this.ObrazIn = ObrazIn;
		newW = 0;
		newH = 0;
		//Sprawdzenie czy bufer jest nieparzysty jesli nie to przerobka
		
		if (DO.widthOb >= 2 | DO.heightOb >= 2){
			if ( DO.widthOb%2 == 0){
				newW = DO.widthOb - 1;
			} else newW = DO.widthOb ;
			
			if ( DO.heightOb%2 == 0){
				newH = DO.heightOb - 1;
			} else newH = DO.heightOb;
		}
		
		if (newW != DO.widthOb | newH != DO.heightOb){
			//System.out.println (" Obrazek ma zly wymiar " + DO.heightOb + " / " + DO.heightOb +" <> "+ newW + " / " + newH);
			Crop(DO);
		} else {
			//System.out.println (" Obrazek ma dobry wymiar " + DO.heightOb + " / " + DO.heightOb +" <> "+ newW + " / " + newH);
		}
		
	}
	
	private void Crop (_A_DaneObrazka DO) {
		// kopiownie do nowego bufera celem crop oryginalnego do nieparzystych wartosci
		BufferedImage temp = new BufferedImage (newW, newH, DO._typObrazka);
		for (int y = 0 ; y < newH ; y++){
			for (int x = 0 ; x < newW ; x++){
				temp.setRGB(x, y, DO._obrazek.getRGB(x, y)); 
			}
		}
		//System.out.println (" Obrazek -> Crop() " + DO.heightOb + " / " + DO.heightOb +" -> "+ newW + " / " + newH);
		DO._obrazek = temp;
		DO.widthOb = newW;
		DO.heightOb = newH;
	}

}
